home *** CD-ROM | disk | FTP | other *** search
/ Aminet 46 / Aminet 46 (2001)(GTI - Schatztruhe)[!][Dec 2001].iso / Aminet / text / edit / edt10src.lha / txt / RxWindows.mod < prev    next >
Text File  |  1995-04-09  |  3KB  |  165 lines

  1. (*
  2.   .name         RxWindows
  3.   .task         arexx commands for windows
  4.   .release    1.0
  5.   .language  Oberon-2
  6.   .translator   Amiga Oberon 3.2
  7.   .system req.  AmigaOS 2.04 or higher
  8.   .author       Joachim Barheine
  9.   .address      Hochgrevestr. 3, 38640 Goslar
  10.   .copyright    (c) 1995 by J. Barheine
  11. *)
  12.  
  13. (* .info: 09/04/95, 19:44:06, version 1 *)
  14.  
  15. MODULE RxWindows;
  16.  
  17. IMPORT
  18.   I:= Intuition,
  19.   IO:= IOServer,
  20.   L:= UntracedLists,
  21.   Prj:= EProject,
  22.   Rx:= ERexx,
  23.   Str:= StrPool,
  24.   W:= Windows;
  25.  
  26. PROCEDURE ActivateWindow* (w: W.Window);
  27.  
  28. BEGIN
  29.   I.ActivateWindow(w.win);
  30. END ActivateWindow;
  31.  
  32. PROCEDURE Busy* (w: W.Window);
  33.  
  34. VAR
  35.   title: ARRAY 128 OF CHAR;
  36.  
  37. BEGIN
  38.   Rx.GetStrLastDef(title, "");
  39.   IO.Busy(w.text, title);
  40. END Busy;
  41.  
  42. PROCEDURE BusyDone* (w: W.Window);
  43.  
  44. BEGIN
  45.   IO.BusyDone(w.text);
  46. END BusyDone;
  47.  
  48. PROCEDURE FirstWindow* (VAR w: W.Window);
  49.  
  50. BEGIN
  51.   w:= IO.windows.head(W.Window);
  52. END FirstWindow;
  53.  
  54. PROCEDURE LastWindow* (VAR w: W.Window);
  55.  
  56. BEGIN
  57.   w:= IO.windows.tail(W.Window);
  58. END LastWindow;
  59.  
  60. PROCEDURE NextWindow* (VAR w: W.Window);
  61.  
  62. VAR
  63.   res: BOOLEAN;
  64.  
  65. BEGIN
  66.   res:= TRUE;
  67.   IF w.next # NIL THEN
  68.     w:= w.next(W.Window);
  69.   ELSIF Rx.Match("CYCLE") THEN
  70.     FirstWindow(w);
  71.   ELSE
  72.     res:= FALSE;
  73.   END;
  74.   Rx.SetBoolResult(res);
  75. END NextWindow;
  76.  
  77. PROCEDURE PrevWindow* (VAR w: W.Window);
  78.  
  79. VAR
  80.   res: BOOLEAN;
  81.  
  82. BEGIN
  83.   res:= TRUE;
  84.   IF w.prev # NIL THEN
  85.     w:= w.prev(W.Window);
  86.   ELSIF Rx.Match("CYCLE") THEN
  87.     LastWindow(w);
  88.   ELSE
  89.     res:= FALSE;
  90.   END;
  91.   Rx.SetBoolResult(res);
  92. END PrevWindow;
  93.  
  94. PROCEDURE Quit* (w: W.Window; VAR msg: SHORTINT);
  95.  
  96. BEGIN
  97.   IF w # NIL THEN
  98.     w.Busy(Str.quitting^);
  99.     IF Rx.Match("ALL") THEN
  100.       IF Prj.CloseAll(w) THEN
  101.         msg:= IO.msgQuit;
  102.         RETURN;
  103.       END;
  104.     ELSIF Prj.Close(w, FALSE) THEN
  105.       msg:= IO.msgClosed;
  106.       Rx.SetBoolResult(TRUE);
  107.       RETURN;
  108.     END;
  109.     w.BusyDone;
  110.     Rx.SetBoolResult(FALSE);
  111.   ELSE
  112.     msg:= IO.msgQuit;
  113.   END;
  114. END Quit;
  115.  
  116. PROCEDURE SelectWindow* (VAR w: W.Window);
  117.  
  118. VAR
  119.   id: LONGINT;
  120.   n: L.NodePtr;
  121.  
  122. BEGIN
  123.   IF Rx.GetNumErr(id) THEN
  124.     n:= IO.GetWindow(SHORT(id));
  125.     IF n # NIL THEN
  126.       w:= n(W.Window);
  127.     ELSE
  128.       Rx.ErrorMsg(Str.unknownWindowID^);
  129.     END;
  130.   END;
  131. END SelectWindow;
  132.  
  133. PROCEDURE SetWindowBox* (w: W.Window);
  134.  
  135. VAR
  136.   x, y, wd, ht: LONGINT;
  137.  
  138. BEGIN
  139.   IF Rx.GetNumErr(x) & Rx.GetNumErr(y) & Rx.GetNumErr(wd) & Rx.GetNumErr(ht) THEN
  140.     I.ChangeWindowBox(w.win, x, y, wd, ht);
  141.   END;
  142. END SetWindowBox;
  143.  
  144. PROCEDURE Title* (w: W.Window);
  145.  
  146. VAR
  147.   title: ARRAY 128 OF CHAR;
  148.  
  149. BEGIN
  150.   IF Rx.GetStrLastErr(title) THEN w.Title(title) END;
  151. END Title;
  152.  
  153. PROCEDURE WindowToBack* (w: W.Window);
  154.  
  155. BEGIN
  156.   I.WindowToBack(w.win);
  157. END WindowToBack;
  158.  
  159. PROCEDURE WindowToFront* (w: W.Window);
  160.  
  161. BEGIN
  162.   I.WindowToFront(w.win);
  163. END WindowToFront;
  164.  
  165. END RxWindows.